package code

import "fmt"

// panic是预料之外的错误, 会导致崩溃
// defer, recover可以捕获panic

func Panic01() {
	err := pay(5)

	func() {
		// 延迟操作
		defer func() {
			if err := recover(); err != nil {
				fmt.Println("recover", err)
			}
		}()

		if err != nil {
			panic(err)
		}
	}()

	// 需要加一个立即执性函数, 发生panic时, 可以执行后续代码
	fmt.Println("后续程序, 因为发生了panic, 所以不会执行")
}
